package com.ss.android.wenda;

import com.bytedance.retrofit2.mime.TypedOutput;
import com.bytedance.retrofit2.Call;
import com.bytedance.retrofit2.http.Body;
import com.bytedance.retrofit2.http.FieldMap;
import com.bytedance.retrofit2.http.FormUrlEncoded;
import com.bytedance.retrofit2.http.HTTP;
import com.bytedance.retrofit2.http.MaxLength;
import com.bytedance.retrofit2.http.Method;
import com.bytedance.retrofit2.http.POST;
import com.bytedance.retrofit2.http.QueryMap;
import com.bytedance.retrofit2.http.Url;
import com.ss.android.article.common.model.ActionResponse;
import com.ss.android.wenda.entity.response.WDQuestionBrowResponseEntity;
import com.ss.android.wenda.entity.response.WDQuestionLoadMoreResponseEntity;
import com.ss.android.wenda.entity.response.WDQuestionOtherBrowResponseEntity;
import com.ss.android.wenda.entity.response.WDQuestionOtherLoadMoreResponseEntity;

import java.util.Map;

public interface IWendaApi {
    @HTTP(a = "{CUSTOM}")
    Call<String> concernBrow(@Method(a = "CUSTOM") String arg1, @Url String arg2, @QueryMap(encoded = true) Map<String, String> arg3, @Body TypedOutput arg4);

    @POST(a = "/wenda/v1/commit/followquestion/")
    Call<ActionResponse> followQuestion(@Body TypedOutput arg1);

    @HTTP(a = "{CUSTOM}")
    Call<WDQuestionLoadMoreResponseEntity> niceAnswer(@Method(a = "CUSTOM") String arg1, @Url String arg2, @QueryMap(encoded = true) Map<String, String> arg3, @Body TypedOutput arg4);

    @HTTP(a = "{CUSTOM}")
    Call<WDQuestionBrowResponseEntity> niceAnswerPage(@Method(a = "CUSTOM") String arg1, @Url String arg2, @QueryMap(encoded = true) Map<String, String> arg3, @Body TypedOutput arg4);

    @HTTP(a = "{CUSTOM}")
    Call<WDQuestionOtherLoadMoreResponseEntity> normalAnswer(@Method(a = "CUSTOM") String arg1, @Url String arg2, @QueryMap(encoded = true) Map arg3, @Body TypedOutput arg4);

    @HTTP(a = "{CUSTOM}")
    Call<WDQuestionOtherBrowResponseEntity> normalAnswerPage(@Method(a = "CUSTOM") String arg1, @Url String arg2, @QueryMap(encoded = true) Map<String, String> arg3, @Body TypedOutput arg4);

    @FormUrlEncoded
    @POST
    Call<ActionResponse> postFormUrl(@MaxLength int arg1, @Url String arg2, @FieldMap(a = true) Map<String, String> arg3);
}

